package com.gopay.remote.bank;

import com.gopay.common.Result;
import com.gopay.common.domain.bank.BaseMessage;
import com.gopay.common.exception.GopayException;

public interface BankManagerRemoteService {
	
    /**
     * 签名
     * 
	 * @param BaseMessage
	 * @return Object
	 * @throws GopayException
     */
    public Object sign(BaseMessage msg) throws GopayException;

    /**
     * 验签
     * 
	 * @param BaseMessage
	 * @return Object
	 * @throws GopayException
     */
    public Object verify(BaseMessage msg) throws GopayException;

    /**
     * 查询订单(供对账使用)
     * 
     * @param Object
     * @return Object
     * @throws GopayException
     */
    public Object query(Object obj) throws GopayException;
    
    /**
     * 银行退款接口
     * 
     * @param BaseMessage
     * @return Result
     */
    public Object refund(BaseMessage base) throws GopayException;
    
    
    /**
     * 日终接口
     * @author guomuye
     * @throws Exception 
     * @throws GopayException 
     */
    public Object dayend(BaseMessage base) throws GopayException, Exception;
    
}
